﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Data;
using DataAccess;
using Utility;

namespace Web.giamthi
{
    public partial class UCMonHoc : System.Web.UI.UserControl
    {
        MonHocControl mhCtr = new MonHocControl();
        MonHoc mh = new MonHoc();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridView1.AllowPaging = true;
                GridView1.PageSize = 10;
                LoadMonHoc();
            }
        }
        // hiển thị danh sách môn học
        private void LoadMonHoc()
        {
            GridView1.DataSource = mhCtr.GetListMonHoc();
            GridView1.DataBind();
        }

        // inset và update môn học
        protected void btnLuu_Click(object sender, EventArgs e)
        {
            if (KiemTra() == false)
            {
                return;
            }
            else
            {
                mh.TenMH = txtTenMH.Text;
                mh.TongSoTiet = Int32.Parse(txtTongSoTiet.Text);
                if (rdCo.Checked == true)
                    mh.MayChieu = true;
                else
                    mh.MayChieu = false;
                mh.MoTa = txtMota.Text;
                if (lblId.Text.Length == 0)
                {
                    if (mhCtr.CheckTenMH(txtTenMH.Text) > 0)
                    {
                        lblError.Text = "Tên môn học này có rồi !";
                    }
                    mhCtr.InsertMonHoc(mh);
                }
                else
                {
                    mh.MaMH = Int32.Parse(lblId.Text);
                    mhCtr.UpdateMonHoc(mh);
                }
                LoadMonHoc();
                clear();
            }
        }

        //kiểm tra dữ liệu hợp lê
        private bool KiemTra()
        {
            bool check = false;
            if (CheckValidate.CheckNull(txtTenMH.Text))
            {
                lblError.Text = "Nhập tên môn học !";
                check = false;
            }
            else if (CheckValidate.CheckNull(txtTongSoTiet.Text))
            {
                lblError.Text = "Nhập tên tổng số tiết !";
                check = false;
            }
            else if (CheckValidate.CheckIntNumber(txtTongSoTiet.Text) == false)
            {
                lblError.Text = "Tổng số tiết phải nhập số !";
                check = false;
            }

            else
            {
                check = true;
            }
            return check;
        }

        protected void btnHuy_Click(object sender, EventArgs e)
        {
            clear();
        }

        private void clear()
        {
            txtMota.Text = "";
            txtTenMH.Text = "";
            txtTongSoTiet.Text = "";
            lblId.Text = "";
            lblError.Text = "";
            
        }

        // chọn 2 môn học để update
        protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int id = Int32.Parse(WebHelper.GetIdGridView(GridView1, 0, e));
            mh = mhCtr.GetMonHocById(id);
            txtMota.Text = mh.MoTa;
            txtTenMH.Text = mh.TenMH;
            txtTongSoTiet.Text = mh.TongSoTiet.ToString();
            if (mh.MayChieu == true)
            {
                rdCo.Checked = true;
                rdKo.Checked = false;
            }
            else
            {
                rdCo.Checked = false;
                rdKo.Checked = true;
            }
            lblId.Text = id.ToString();
        }
        
        // xóa
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = Int32.Parse(WebHelper.GetDataKey(GridView1, e));
            if (mhCtr.CheckDeleteMonHoc(id) > 0)
            {
                lblError.Text = "Môn học này đang sử dụng bên bảng phân công !";
            }
            else
            {
                mh.MaMH = id;
                try
                {
                   mhCtr.DeleteMonHoc(mh);
                }
                catch(Exception ex)
                {
                    WebHelper.ShowMessage("Môn học này đang sử dụng bên bảng phân công !", Page);
                }
            
            }
            WebHelper.ShowMessage("Xóa thành công !", Page);
            LoadMonHoc();
            clear();
        }

        // phân trang
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            WebHelper.pageIndexChanging(GridView1 , e);
            LoadMonHoc();
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            WebHelper.ConfirmDelete("Bạn muốn xóa dòng này ?", e);
        }
    }
}